using System;
using System.Collections.Generic;
using Mbs.Collections;

namespace Mbs.Messaging.Imp
{
    [Serializable]
    public class PoolMessageRepository : MessageRepository
    {
        public PoolMessageRepository()
            : base(new Mbs.Collections.ConcurrentMap<Key, ISubject>(), new PoolSubjectBuilder(), MessageListnerManager.Synchronized(), Mbs.Messaging.Imp.DelegateInvoker.Create())
        {
        }
        public PoolMessageRepository(IMap<Key, ISubject> subjects, ISubjectBuilder builder, IMessageListnerManager hookManager, IDelegateInvoker delegateInvoker)
            : base(subjects, builder, hookManager, delegateInvoker)
        {

        }

    }

    //[Serializable]
    //class FullPoolMessageRouter : MessageRouter
    //{
    //    public FullPoolMessageRouter()
    //        : base(new Mbs.Collections.SyncDictionary<Key, ISubject>(), new PoolSubjectBuilder(), Mbs.Imp.Listner.Synchronized(), Mbs.Imp.DelegateInvoker.CreateFullPoolInvoker())
    //    {
    //    }
    //    public FullPoolMessageRouter(IDictionary<Key, ISubject> subjects, ISubjectBuilder builder, IHookManager hookManager, IDelegateInvoker delegateInvoker)
    //        : base(subjects, builder, hookManager, delegateInvoker)
    //    {

    //    }

    //}
}
